-
Notifications
You must be signed in to change notification settings - Fork 932
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add support for Blobstream API #3470
Conversation
# Conflicts: # go.mod # go.sum
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3470 +/- ##
==========================================
+ Coverage 44.83% 45.55% +0.71%
==========================================
Files 265 280 +15
Lines 14620 15848 +1228
==========================================
+ Hits 6555 7219 +664
- Misses 7313 7798 +485
- Partials 752 831 +79 ☔ View full report in Codecov by Sentry. |
@renaynay @Wondertan blobstream module re-introduced and endpoints removed from header module. Please review when you have time :D |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment is probably a little late and I acknowledge that but I don't think this is generic and widespread enough to warrant being a part of the node API. This will probably only be run by a single machine. We don't need to bloat the repo with this added module. I feel like it can be implemented completely outside (in the blobstreamX relayer code) using the header module and constructing the merkle tree from the results.
We can still keep the blob inclusion proofs. Although I think we should not use the word Commitment
publicly because it's not clear what it means. I would advocate GetInclusionProof
This will be run by zk-Blobstream provers, we now have:
And also by users/validators in case of a fraud proof. For the commitment proof, it can also be used by sovereign rollups in their fraud proofs (still to be defined/discussed). So, there are a few parties that will use these endpoints.
I don't think it's bloating the repo. The share proof and commitment proof belong to this repo. For the
For this, it will replace the |
I think the commitment proof (and share proof) makes sense. It's a generic use case that you want to prove inclusion of the blob (and shares). My original push back was to adding the blobstream module. Can't that logic be run by the "relayer", "prover" which makes the calls to the node's API rather than being inside the node itself.
I don't view Blobstream as core to the DA protocol. It's a service built "on top off" Celestia. |
you're right, it can. I just checked our current implementations of Blobstream, BlobstreamX and Blobstream0, and they both rewrite that logic, so they're not using these endpoints. So the main usage of those two endpoints would be when generating an inclusion proof to verify the inclusion of a blob. So we have two options:
I'll take this discussion to slack and we can get other's opinion. Thanks for flagging this 👍 |
Another future option is for when the node actually becomes pluggable. You will be able to make a module that lives outside the node but can be integrated into the node like its part of it. Basically, there will be enhanced nodes with some additional application-specific functionality depending on module configuration. So, we get seamless integration into the node without needing the node team to maintain all the nonstandard modules. |
Co-authored-by: rene <[email protected]>
Closes #3361